java单空间Swing文本
我写了一个程序,可以拍照并创建ASCII表示(ASCII艺术)。起初,我将ASCII字符串写入控制台,但现在我有了一个保存文本的JLabel。然而,JLabel输出是不规则的,不像控制台输出那样均匀。我尝试使用单间距字体(Droid Sans Mono)作为JLabel中的字体,因为这是我用于控制台输出的字体,但输出仍然不规则。有没有更好的方法在Swing/JLabel中指定单间距字体
以下是我用来创建JLabel的方法:
public JLabel formatLabel(){
String l = "<html>";
for(int j = 0; j < height; j+=patchSize){
for(int k = 0; k < width; k+=patchSize){
l+=imageArray.get(j).get(k);
}
l+="<br>";
}
l+="</html>";
return new JLabel(l);
}
我用来指定字体的那一行:
label.setFont(new Font("Droid Sans Mono", Font.PLAIN, 6));
编辑:我将JLabel改为JTextArea,效果更好。唯一的问题是,即使使用很小的字体,框架通常也在屏幕之外。但我有一种方法,可以改变要采样的像素数,这将使输出更小
# 1 楼答案
可以使用html字体标记指定文本的字体
}